/*
 * Copyright (C) 2009 Internal Innovation Technology(IIT)
 * 
 */
package com.iitbd.hxcalc;

import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Structure;

/**
 *
 * @author Prasun Kanti Howlader <prasun@iitbd.com>
 */
class CLibrary {
    static ClibraryFunction cLibrary;
    static {
        cLibrary = (ClibraryFunction)Native.loadLibrary("hxcalc",ClibraryFunction.class);
    }
    //public static native void fun();

    interface ClibraryFunction extends Library {

        /**
         * Original signature :
         * <code>void calculate_Hx(Hx_InTP*, Hx_InH*, Hx_InSat*, Hx_InSetpoint*, Hx_InGas*, Hx_InCon*, Hx_Out*, Hx_Dbg_Ch*, Hx_OutSat*, Hx_MSt*)</code><br>
         * <i>native declaration : line 5</i>
         */
        public void calculate_Hx(Hx_InTP Hx_InTPPtr1, Hx_InH Hx_InHPtr1, Hx_InSat Hx_InSatPtr1, Hx_InSetpoint Hx_InSetpointPtr1, Hx_InGas Hx_InGasPtr1, Hx_InCon Hx_InConPtr1, Hx_Out Hx_OutPtr1, Hx_Tmp Hx_TmpPtr1, Hx_OutSat Hx_OutSatPtr1, Hx_MSt Hx_MStPtr1);
    }

    
    public static void calculate_Hx(Hx_InTP Hx_InTPPtr1, Hx_InH Hx_InHPtr1, Hx_InSat Hx_InSatPtr1, Hx_InSetpoint Hx_InSetpointPtr1, Hx_InGas Hx_InGasPtr1, Hx_InCon Hx_InConPtr1, Hx_Out Hx_OutPtr1, Hx_Tmp Hx_TmpPtr1, Hx_OutSat Hx_OutSatPtr1, Hx_MSt Hx_MStPtr1){
        cLibrary.calculate_Hx(Hx_InTPPtr1, Hx_InHPtr1, Hx_InSatPtr1, Hx_InSetpointPtr1, Hx_InGasPtr1, Hx_InConPtr1, Hx_OutPtr1, Hx_TmpPtr1, Hx_OutSatPtr1, Hx_MStPtr1);
    }

    public static class Hx_InTP extends Structure {
        /// !< Input temperature in K

        public float InTemp;
        /// !< status InTemp;
        public byte StInTemp;
        /// !< Input pressure in Pa
        public float InPressure;
        /// !< status InPressure;
        public byte StInPressure;

        public Hx_InTP() {
            super();

        }

        /**
         * @param InTemp !< Input temperature in K<br>
         * @param StInTemp !< status InTemp;<br>
         * @param InPressure !< Input pressure in Pa<br>
         * @param StInPressure !< status InPressure;
         */
        public Hx_InTP(float InTemp, byte StInTemp, float InPressure, byte StInPressure) {
            super();
            this.InTemp = InTemp;
            this.StInTemp = StInTemp;
            this.InPressure = InPressure;
            this.StInPressure = StInPressure;

        }

        public static class ByReference extends Hx_InTP implements Structure.ByReference {
        }

        public static class ByValue extends Hx_InTP implements Structure.ByValue {
        }
    }
    /// <i>native declaration : line 17</i>

    public static class Hx_InH extends Structure {
        /// !< Input HumVal , different types possible  depending on InInputValue

        public float InHumVal;
        /// !< status InHumVal
        public byte StInHumVal;

        public Hx_InH() {
            super();

        }

        /**
         * @param InHumVal !< Input HumVal , different types possible depending
         * on InInputValue<br>
         * @param StInHumVal !< status InHumVal
         */
        public Hx_InH(float InHumVal, byte StInHumVal) {
            super();
            this.InHumVal = InHumVal;
            this.StInHumVal = StInHumVal;

        }

        public static class ByReference extends Hx_InH implements Structure.ByReference {
        }

        public static class ByValue extends Hx_InH implements Structure.ByValue {
        }
    }

    public static class Hx_InCon extends Structure {

        /**
         * @see humidity<br> C type : humidity
         */
        public int InInputValue;
        /// !<  input 1 over water 0 over ice  for Input
        public int InWaterIce;
        /**
         * @see modus<br> C type : modus
         */
        public int InModus;

        /**
         * <i>native declaration : line 6</i><br> enum values
         */
        public static interface humidity {

            /**
             * !< relative humidity in % from WMO definition<br> <i>native
             * declaration : line 8</i>
             */
            public static final int InRhWmo = (int) 0;
            /**
             * !< relative humidity in % standard definition<br> <i>native
             * declaration : line 10</i>
             */
            public static final int InRh = (int) 1;
            /**
             * !< Mixixing ratio by volume<br> <i>native declaration : line
             * 12</i>
             */
            public static final int InMRV = (int) 2;
            /**
             * !< Mixixing ratio by wight<br> <i>native declaration : line
             * 14</i>
             */
            public static final int InMRW = (int) 3;
            /**
             * !< Mixixing ratio by volume in ppm<br> <i>native declaration :
             * line 16</i>
             */
            public static final int InPpmV = (int) 4;
            /**
             * !< Mixixing ratio by wight in ppm<br> <i>native declaration :
             * line 18</i>
             */
            public static final int InPpmW = (int) 5;
            /**
             * !< dew point temperature in K<br> <i>native declaration : line
             * 20</i>
             */
            public static final int InDp = (int) 6;
            /**
             * !< frost point temperature in K<br> <i>native declaration : line
             * 22</i>
             */
            public static final int InFp = (int) 7;
            /**
             * !< wet bulb temperature in K<br> <i>native declaration : line
             * 24</i>
             */
            public static final int InWbt = (int) 8;
        }

        /**
         * <i>native declaration : line 32</i><br> enum values
         */
        public static interface modus {

            /**
             * !< Normal only 1 probe is used<br> <i>native declaration : line
             * 34</i>
             */
            public static final int Normal = (int) 0;
            /**
             * !< Temperature = Temparture mode , InSatPress as input<br>
             * <i>native declaration : line 36</i>
             */
            public static final int Temperature = (int) 1;
            /**
             * !< Pressure = Pressure mode, InSatTemp as input<br> <i>native
             * declaration : line 38</i>
             */
            public static final int Pressure = (int) 2;
            /**
             * !< Both = InSatPress and InSatTemp as input<br> <i>native
             * declaration : line 40</i>
             */
            public static final int Both = (int) 3;
        }

        public Hx_InCon() {
            super();

        }

        /**
         * @param InInputValue
         * @see humidity<br> C type : humidity<br>
         * @param InWaterIce !< input 1 over water 0 over ice for Input<br>
         * @param InModus
         * @see modus<br> C type : modus
         */
        public Hx_InCon(int InInputValue, int InWaterIce, int InModus) {
            super();
            this.InInputValue = InInputValue;
            this.InWaterIce = InWaterIce;
            this.InModus = InModus;

        }

        public static class ByReference extends Hx_InCon implements Structure.ByReference {
        }

        public static class ByValue extends Hx_InCon implements Structure.ByValue {
        }
    }

    public static class Hx_InSat extends Structure {
        /// !< Input temperature2 in K

        public float InTemp2;
        /// !< status InTemp2
        public byte StInTemp2;
        /// !< Input pressure2 in Pa
        public float InPressure2;
        /// !< status InPressure;
        public byte StInPressure2;

        public Hx_InSat() {
            super();

        }

        /**
         * @param InTemp2 !< Input temperature2 in K<br>
         * @param StInTemp2 !< status InTemp2<br>
         * @param InPressure2 !< Input pressure2 in Pa<br>
         * @param StInPressure2 !< status InPressure;
         */
        public Hx_InSat(float InTemp2, byte StInTemp2, float InPressure2, byte StInPressure2) {
            super();
            this.InTemp2 = InTemp2;
            this.StInTemp2 = StInTemp2;
            this.InPressure2 = InPressure2;
            this.StInPressure2 = StInPressure2;

        }

        public static class ByReference extends Hx_InSat implements Structure.ByReference {
        }

        public static class ByValue extends Hx_InSat implements Structure.ByValue {
        }
    }

    public static class Hx_InSetpoint extends Structure {
        /// !< 1 if Setpoint Pressure should be used

        public int UseSetpPressure;
        /// !< 1 if Setpoint Temp should be used
        public int UseSetpTemp;
        /// !< 1 if Setpoint Humidity should be used
        public int UseSetpHumidity;
        /// !< 1 if Setpoint Pressure2 should be used
        public int UseSetpPressure2;
        /// !< 1 if Setpoint Temp2 should be used
        public int UseSetpTemp2;
        /// !< Optional setpoint for pressure in Pa
        public float SetpPressure;
        /// !< Optional setpoint for Temperature in \u00b0K
        public float SetpTemp;
        /// !< Optional setpoint for humidity in combination with InInputHum enum
        public float SetpHumidity;
        /// !< Optional setpoint for pressure2 in Pa
        public float SetpPressure2;
        public float SetpTemp2;

        public Hx_InSetpoint() {
            super();

        }

        /**
         * @param UseSetpPressure !< 1 if Setpoint Pressure should be used<br>
         * @param UseSetpTemp !< 1 if Setpoint Temp should be used<br>
         * @param UseSetpHumidity !< 1 if Setpoint Humidity should be used<br>
         * @param UseSetpPressure2 !< 1 if Setpoint Pressure2 should be used<br>
         * @param UseSetpTemp2 !< 1 if Setpoint Temp2 should be used<br>
         * @param SetpPressure !< Optional setpoint for pressure in Pa<br>
         * @param SetpTemp !< Optional setpoint for Temperature in \u00b0K<br>
         * @param SetpHumidity !< Optional setpoint for humidity in combination
         * with InInputHum enum<br>
         * @param SetpPressure2 !< Optional setpoint for pressure2 in Pa
         * @param SetpTemp2 !< Optional setpoint for temperature2 in \u00b0K
         */
        public Hx_InSetpoint(int UseSetpPressure, int UseSetpTemp, int UseSetpHumidity, int UseSetpPressure2, int UseSetpTemp2, float SetpPressure, float SetpTemp, float SetpHumidity, float SetpPressure2, float SetpTemp2) {
            super();
            this.UseSetpPressure = UseSetpPressure;
            this.UseSetpTemp = UseSetpTemp;
            this.UseSetpHumidity = UseSetpHumidity;
            this.UseSetpPressure2 = UseSetpPressure2;
            this.UseSetpTemp2 = UseSetpTemp2;
            this.SetpPressure = SetpPressure;
            this.SetpTemp = SetpTemp;
            this.SetpHumidity = SetpHumidity;
            this.SetpPressure2 = SetpPressure2;
            this.SetpTemp2 = SetpTemp2;

        }

        public static class ByReference extends Hx_InSetpoint implements Structure.ByReference {
        }

        public static class ByValue extends Hx_InSetpoint implements Structure.ByValue {
        }
    }

    public static class Hx_InGas extends Structure {
        /// !< 0 Dry Air 1 other

        public int CarrierGasSelector;
        /**
         * @see gas<br> !< carrier gas to select<br> C type : gas
         */
        public int CarrierGas;
        /// !< Molar masse Carriergas in kg /m\u00b3
        public float MmC;
        /// !< Boiling point of Carriergas in \u00b0C
        public float BpTempC;
        /// !< cp value of Carriergas  J / Kg K
        public float cpC;
        /**
         * !< Pointer to name of Carriergas<br> C type : char*
         */
        public String pCarrierName;

        /**
         * <i>native declaration : line 5</i><br> enum values
         */
        public static interface gas {
            /// <i>native declaration : line 7</i>

            public static final int DryAir = (int) 0;
            /// <i>native declaration : line 8</i>
            public static final int Argon = (int) 1;
            /// <i>native declaration : line 9</i>
            public static final int Helium = (int) 2;
            /// <i>native declaration : line 10</i>
            public static final int Hexaflurethan = (int) 3;
            /// <i>native declaration : line 11</i>
            public static final int Krypton = (int) 4;
            /// <i>native declaration : line 12</i>
            public static final int Neon = (int) 5;
            /// <i>native declaration : line 13</i>
            public static final int Oxygen = (int) 6;
            /// <i>native declaration : line 14</i>
            public static final int Nitrogen = (int) 7;
            /// <i>native declaration : line 15</i>
            public static final int Hydrogen = (int) 8;
            /// <i>native declaration : line 16</i>
            public static final int Xenon = (int) 9;
        };

        public Hx_InGas() {
            super();

        }

        /**
         * @param CarrierGasSelector !< 0 Dry Air 1 other<br>
         * @param CarrierGas
         * @see gas<br> !< carrier gas to select<br> C type : gas<br>
         * @param MmC !< Molar masse Carriergas in kg /m\u00b3<br>
         * @param BpTempC !< Boiling point of Carriergas in \u00b0C<br>
         * @param cpC !< cp value of Carriergas J / Kg K<br>
         * @param pCarrierName !< Pointer to name of Carriergas<br> C type :
         * char*
         */
        public Hx_InGas(int CarrierGasSelector, int CarrierGas, float MmC, float BpTempC, float cpC, String pCarrierName) {
            super();
            this.CarrierGasSelector = CarrierGasSelector;
            this.CarrierGas = CarrierGas;
            this.MmC = MmC;
            this.BpTempC = BpTempC;
            this.cpC = cpC;
            this.pCarrierName = pCarrierName;

        }

        public static class ByReference extends Hx_InGas implements Structure.ByReference {
        }

        public static class ByValue extends Hx_InGas implements Structure.ByValue {
        }
    }

    public static class Hx_OutCon extends Structure {
        /// !<  output value 1 over water 0 over ice

        public int OutWaterIce;

        public Hx_OutCon() {
            super();

        }

        /// @param OutWaterIce !<  output value 1 over water 0 over ice
        public Hx_OutCon(int OutWaterIce) {
            super();
            this.OutWaterIce = OutWaterIce;

        }

        public static class ByReference extends Hx_OutCon implements Structure.ByReference {
        }

        public static class ByValue extends Hx_OutCon implements Structure.ByValue {
        }
    }

    /// <i>native declaration : line 3</i>
    public static class Hx_Out extends Structure {
        
        /// !< relativ humidity in % over water or over Ice
        public float OutRh;
        /// !< status Rh
        public byte StOutRh;
        /// !< relativ humidity from WMO definition over water in %
        public float OutRhWmo;
        /// !< status RhWMO
        public byte StOutRhWmo;
        /// !< dewpoint temperature over water in K
        public float OutDp;
        /// !< status Dp
        public byte StOutDp;
        /// !< frostpoint temperature over ice in K
        public float OutFp;
        /// !< status Fp
        public byte StOutFp;
        /// !< mixing ratio by volume in ppm
        public float OutPpmV;
        /// !< status PpmV
        public byte StOutPpmV;
        /// !< mixing ratio by weight in ppm
        public float OutPpmW;
        /// !< status PpmW
        public byte StOutPpmW;
        /// !< enthalpy in J/g
        public float OutEnth;
        /// !< status enthalpy
        public byte StOutEnth;
        /// !< specific humidity
        public float OutSpecHum;
        /// !< status specific humidity
        public byte StOutSpecHum;
        /// !< absolute humidity in g/m\u00b3
        public float OutAbsHum;
        /// !< status absolute humidity
        public byte StOutAbsHum;
        /// !< dry air density in g/m\u00b3
        public float OutDryAirDen;
        /// !< status DryAirDen
        public byte StOutDryAirDen;
        /// !< moist air density in g/m\u00b3
        public float OutMoistAirDen;
        /// !< status MoistAirDen
        public byte StOutMoistAirDen;
        /// !< wet bulb temperature in K
        public float OutWbt;
        /// !< status Wbt
        public byte StOutWbt;
        /// !< dry air mole fraction by volume in %
        public float OutPercByVol;
        /// !< status PercByVol
        public byte StOutPercByVol;
        /// !< dry air mole fraction by wight in %
        public float OutPercByWight;
        /// !< status PercByWight
        public byte StOutPercByWight;
        /// !< vapaor mole fraction
        public float OutVapMoleFrc;
        /// !< status VapMolFrc
        public byte StOutVapMoleFrc;
        /// !< dry air mole fraction
        public float OutDryAirMoleFrc;
        /// !< status DryAirMoleFrc
        public byte StOutDryAirMoleFrc;
        /// !< specific humifity in grains per pound
        public float OutGrasLb;
        /// !< status GrasLb
        public byte StOutGrasLb;
        /// !< saturation vapor pressure on InTemp and InPressure with enhancement factors over water in Pa
        public float OutSvpTtw;
        /// !< status SvpTtw
        public byte StOutSvpTtw;
        /// !< saturation vapor pressure on InTemp and InPressure with enhancement factor over ice in Pa
        public float OutSvpTti;
        /// !< status SvpTti
        public byte StOutSvpTti;
        /// !< saturation vapor pressure on Fp/Fp and InPressure with enhancement factors in Pa
        public float OutSvpTdf;
        /// !< status SvpTdf
        public byte StOutSvpTdf;

        public Hx_Out() {
            super();

        }

        /**
         * @param OutRh !< relativ humidity in % over water or over Ice<br>
         * @param StOutRh !< status Rh<br>
         * @param OutRhWmo !< relativ humidity from WMO definition over water in
         * %<br>
         * @param StOutRhWmo !< status RhWMO<br>
         * @param OutDp !< dewpoint temperature over water in K<br>
         * @param StOutDp !< status Dp<br>
         * @param OutFp !< frostpoint temperature over ice in K<br>
         * @param StOutFp !< status Fp<br>
         * @param OutPpmV !< mixing ratio by volume in ppm
         * @param StOutPpmV !< status PpmV<br>
         * @param OutPpmW !< mixing ratio by weight in ppm<br>
         * @param StOutPpmW !< status PpmW<br>
         * @param OutEnth !< enthalpy in J/g<br>
         * @param StOutEnth !< status enthalpy<br>
         * @param OutSpecHum !< specific humidity<br>
         * @param StOutSpecHum !< status specific humidity<br>
         * @param OutAbsHum !< absolute humidity in g/m\u00b3<br>
         * @param StOutAbsHum !< status absolute humidity
         * @param StOutAbsHum !< status absolute humidity<br>
         * @param OutDryAirDen !< dry air density in g/m\u00b3<br>
         * @param StOutDryAirDen !< status DryAirDen<br>
         * @param OutMoistAirDen !< moist air density in g/m\u00b3<br>
         * @param StOutMoistAirDen !< status MoistAirDen<br>
         * @param OutWbt !< wet bulb temperature in K<br>
         * @param StOutWbt !< status Wbt<br>
         * @param OutPercByVol !< dry air mole fraction by volume in %<br>
         * @param StOutPercByVol !< status PercByVol
         * @param OutPercByWight !< dry air mole fraction by wight in %<br>
         * @param StOutPercByWight !< status PercByWight<br>
         * @param OutVapMoleFrc !< vapaor mole fraction<br>
         * @param StOutVapMoleFrc !< status VapMolFrc<br>
         * @param OutDryAirMoleFrc !< dry air mole fraction<br>
         * @param StOutDryAirMoleFrc !< status DryAirMoleFrc<br>
         * @param OutGrasLb !< specific humifity in grains per pound<br>
         * @param StOutGrasLb !< status GrasLb<br>
         * @param OutSvpTtw !< saturation vapor pressure on InTemp and
         * InPressure with enhancement factors over water in Pa
         * @param StOutSvpTtw !< status SvpTtw<br>
         * @param OutSvpTti !< saturation vapor pressure on InTemp and
         * InPressure with enhancement factor over ice in Pa<br>
         * @param StOutSvpTti !< status SvpTti<br>
         * @param OutSvpTdf !< saturation vapor pressure on Fp/Fp and InPressure
         * with enhancement factors in Pa<br>
         * @param StOutSvpTdf !< status SvpTdf
         */
        public Hx_Out(float OutRh, byte StOutRh, float OutRhWmo, byte StOutRhWmo, float OutDp, byte StOutDp, float OutFp, byte StOutFp, float OutPpmV, byte StOutPpmV, float OutPpmW, byte StOutPpmW, float OutEnth, byte StOutEnth, float OutSpecHum, byte StOutSpecHum, float OutAbsHum, byte StOutAbsHum, float OutDryAirDen, byte StOutDryAirDen, float OutMoistAirDen, byte StOutMoistAirDen, float OutWbt, byte StOutWbt, float OutPercByVol, byte StOutPercByVol, float OutPercByWight, byte StOutPercByWight, float OutVapMoleFrc, byte StOutVapMoleFrc, float OutDryAirMoleFrc, byte StOutDryAirMoleFrc, float OutGrasLb, byte StOutGrasLb, float OutSvpTtw, byte StOutSvpTtw, float OutSvpTti, byte StOutSvpTti, float OutSvpTdf, byte StOutSvpTdf) {
            super();
            this.OutRh = OutRh;
            this.StOutRh = StOutRh;
            this.OutRhWmo = OutRhWmo;
            this.StOutRhWmo = StOutRhWmo;
            this.OutDp = OutDp;
            this.StOutDp = StOutDp;
            this.OutFp = OutFp;
            this.StOutFp = StOutFp;
            this.OutPpmV = OutPpmV;
            this.StOutPpmV = StOutPpmV;
            this.OutPpmW = OutPpmW;
            this.StOutPpmW = StOutPpmW;
            this.OutEnth = OutEnth;
            this.StOutEnth = StOutEnth;
            this.OutSpecHum = OutSpecHum;
            this.StOutSpecHum = StOutSpecHum;
            this.OutAbsHum = OutAbsHum;
            this.StOutAbsHum = StOutAbsHum;
            this.StOutAbsHum = StOutAbsHum;
            this.OutDryAirDen = OutDryAirDen;
            this.StOutDryAirDen = StOutDryAirDen;
            this.OutMoistAirDen = OutMoistAirDen;
            this.StOutMoistAirDen = StOutMoistAirDen;
            this.OutWbt = OutWbt;
            this.StOutWbt = StOutWbt;
            this.OutPercByVol = OutPercByVol;
            this.StOutPercByVol = StOutPercByVol;
            this.OutPercByWight = OutPercByWight;
            this.StOutPercByWight = StOutPercByWight;
            this.OutVapMoleFrc = OutVapMoleFrc;
            this.StOutVapMoleFrc = StOutVapMoleFrc;
            this.OutDryAirMoleFrc = OutDryAirMoleFrc;
            this.StOutDryAirMoleFrc = StOutDryAirMoleFrc;
            this.OutGrasLb = OutGrasLb;
            this.StOutGrasLb = StOutGrasLb;
            this.OutSvpTtw = OutSvpTtw;
            this.StOutSvpTtw = StOutSvpTtw;
            this.OutSvpTti = OutSvpTti;
            this.StOutSvpTti = StOutSvpTti;
            this.OutSvpTdf = OutSvpTdf;
            this.StOutSvpTdf = StOutSvpTdf;

        }

        public static class ByReference extends Hx_Out implements Structure.ByReference {
        }

        public static class ByValue extends Hx_Out implements Structure.ByValue {
        }
    }

    public static class Hx_OutSat extends Structure {
        /// !< saturation temperature in K

        public float OutSatTemp;
        /// !< status SatTemp
        public byte StOutSatTemp;
        /// !< saturaton pressure in Pa
        public float OutSatPress;
        /// !< status SatPress
        public byte StOutSatPress;
        /// !< saturation vapor pressure with enhancement factors on SatTemp and SatPressure in Pa
        public float OutSvpTs;
        /// !< status SvpTs
        public byte StOutSvpTs;

        public Hx_OutSat() {
            super();

        }

        /**
         * @param OutSatTemp !< saturation temperature in K<br>
         * @param StOutSatTemp !< status SatTemp<br>
         * @param OutSatPress !< saturaton pressure in Pa<br>
         * @param StOutSatPress !< status SatPress<br>
         * @param OutSvpTs !< saturation vapor pressure with enhancement factors
         * on SatTemp and SatPressure in Pa<br>
         * @param StOutSvpTs !< status SvpTs
         */
        public Hx_OutSat(float OutSatTemp, byte StOutSatTemp, float OutSatPress, byte StOutSatPress, float OutSvpTs, byte StOutSvpTs) {
            super();
            this.OutSatTemp = OutSatTemp;
            this.StOutSatTemp = StOutSatTemp;
            this.OutSatPress = OutSatPress;
            this.StOutSatPress = StOutSatPress;
            this.OutSvpTs = OutSvpTs;
            this.StOutSvpTs = StOutSvpTs;

        }

        public static class ByReference extends Hx_OutSat implements Structure.ByReference {
        };

        public static class ByValue extends Hx_OutSat implements Structure.ByValue {
        }
    }

    public static class Hx_MSt extends Structure {
        /// !< modulstatus calculate_Hx

        public byte Err_CalculateHx;

        public Hx_MSt() {
            super();

        }

        /// @param Err_CalculateHx !< modulstatus calculate_Hx
        public Hx_MSt(byte Err_CalculateHx) {
            super();
            this.Err_CalculateHx = Err_CalculateHx;

        }

        public static class ByReference extends Hx_MSt implements Structure.ByReference {
        }

        public static class ByValue extends Hx_MSt implements Structure.ByValue {
        }
    }

    public static class Hx_Tmp extends Structure {
        
        /// !< saturation vapor pressure without enhancement factor over water in Pa
        public float OutSvpTtw0;
        /// !< saturation vapor pressure without enhancement factor over ice in Pa
        public float OutSvpTti0;
        /// !< saturation vapor pressure on Dp/Fp without enhancement factors in Pa
        public float OutSvpTdf0;
        /// !< saturation vapor pressure without enhancement factors on Tsat and Psat in Pa
        public float OutSvpTs0;
        /// !< enhancement factor using InTemp and InPressure over water
        public float OutFTtPtw;
        /// !< enhancement factor using InTemp and InPressure over ice
        public float OutFTtPti;
        /// !< enhancement factor on Dp/Fp and InPressure
        public float OutFTtdfp;
        /// !< enhancement factor on  SatTemp and SatPressure
        public float OutFTtPs;
        /// !< Iterationen counter 1
        public byte iter1;
        /// !< Iterationen counter 2
        public byte iter2;
        /// !< Iterationen counter 3
        public byte iter3;
        /// !< Iterationen counter 4
        public byte iter4;
        /// !< Iterationen counter 5
        public byte iter5;
        /// !< Iterationen counter 6
        public byte iter6;
        /// !< errorcode  hx_esw0
        public byte Err_hx_esw0;
        /// !< errorcode  hx_esi0
        public byte Err_hx_esi0;
        /// !< errorcode  hx_esw
        public byte Err_hx_esw;
        /// !< errorcode  hx_esi
        public byte Err_hx_esi;
        /// !< errorcode  hx_tdp0
        public byte Err_hx_tdp0;
        /// !< errorcode  hx_tfp0
        public byte Err_hx_tfp0;
        /// !< errorcode  hx_tdp
        public byte Err_hx_tdp;
        /// !< errorcode  hx_tfp
        public byte Err_hx_tfp;
        /// !< errorcode  hx_MRV
        public byte Err_hx_MRV;
        /// !< errorcode  hx_Enth
        public byte Err_hx_Enth;
        /// !< errorcode hx_SpecHum
        public byte Err_hx_SpecHum;
        /// !< errorcode hx_AbsHum
        public byte Err_hx_AbsHum;
        /// !< errorcode hx_Wbt
        public byte Err_hx_Wbt;
        /// !< errorcode hx_Wbtw
        public byte Err_hx_Wbtw;
        /// !< errorcode hx_Wbti
        public byte Err_hx_Wbti;
        /// !< errorcode hx_AirDen
        public byte Err_hx_AirDen;
        /// !< errorcode hx_MoleFrc
        public byte Err_hx_MoleFrc;
        /// !< errorcode hx_Rh
        public byte Err_hx_Rh;
        /// !< errorcode hx_MrV_to_Rh
        public byte Err_MrV_to_Rh;
        /// !< errorcode hx_Dp_to_Rh
        public byte Err_Dp_to_Rh;
        /// !< errorcode hx_Wbt_to_Rh
        public byte Err_Wbt_to_Rh;
        /// !< errorcode hx_RhWmo_to_Rh
        public byte Err_RhWmo_to_Rh;
        /// !< errorcode hx_RhWmo_to_Rh
        public byte Err_Rh_to_RhWmo;
        /// !< errorcode hx_SatTemp
        public byte Err_SatTemp;
        /// !< errorcode hx_SatPress
        public byte Err_SatPress;
        /// !< errorcode hx_SatPressTemp
        public byte Err_SatPressTemp;
        /// !< errorcode init_Hx
        public byte Err_InitHx;

        public Hx_Tmp() {
            super();

        }

        /**
         * @param OutSvpTtw0 !< saturation vapor pressure without enhancement
         * factor over water in Pa<br>
         * @param OutSvpTti0 !< saturation vapor pressure without enhancement
         * factor over ice in Pa<br>
         * @param OutSvpTdf0 !< saturation vapor pressure on Dp/Fp without
         * enhancement factors in Pa<br>
         * @param OutSvpTs0 !< saturation vapor pressure without enhancement
         * factors on Tsat and Psat in Pa<br>
         * @param OutFTtPtw !< enhancement factor using InTemp and InPressure
         * over water<br>
         * @param OutFTtPti !< enhancement factor using InTemp and InPressure
         * over ice<br>
         * @param OutFTtdfp !< enhancement factor on Dp/Fp and InPressure<br>
         * @param OutFTtPs !< enhancement factor on SatTemp and SatPressure
         * @param iter1 !< Iterationen counter 1<br>
         * @param iter2 !< Iterationen counter 2<br>
         * @param iter3 !< Iterationen counter 3<br>
         * @param iter4 !< Iterationen counter 4<br>
         * @param iter5 !< Iterationen counter 5<br>
         * @param iter6 !< Iterationen counter 6
         * @param Err_hx_esw0 !< errorcode hx_esw0<br>
         * @param Err_hx_esi0 !< errorcode hx_esi0<br>
         * @param Err_hx_esw !< errorcode hx_esw<br>
         * @param Err_hx_esi !< errorcode hx_esi<br>
         * @param Err_hx_tdp0 !< errorcode hx_tdp0<br>
         * @param Err_hx_tfp0 !< errorcode hx_tfp0<br>
         * @param Err_hx_tdp !< errorcode hx_tdp<br>
         * @param Err_hx_tfp !< errorcode hx_tfp
         * @param Err_hx_MRV !< errorcode hx_MRV<br>
         * @param Err_hx_Enth !< errorcode hx_Enth<br>
         * @param Err_hx_SpecHum !< errorcode hx_SpecHum<br>
         * @param Err_hx_AbsHum !< errorcode hx_AbsHum<br>
         * @param Err_hx_Wbt !< errorcode hx_Wbt<br>
         * @param Err_hx_Wbtw !< errorcode hx_Wbtw<br>
         * @param Err_hx_Wbti !< errorcode hx_Wbti<br>
         * @param Err_hx_AirDen !< errorcode hx_AirDen<br>
         * @param Err_hx_MoleFrc !< errorcode hx_MoleFrc
         * @param Err_hx_Rh !< errorcode hx_Rh<br>
         * @param Err_MrV_to_Rh !< errorcode hx_MrV_to_Rh<br>
         * @param Err_Dp_to_Rh !< errorcode hx_Dp_to_Rh<br>
         * @param Err_Wbt_to_Rh !< errorcode hx_Wbt_to_Rh<br>
         * @param Err_RhWmo_to_Rh !< errorcode hx_RhWmo_to_Rh<br>
         * @param Err_Rh_to_RhWmo !< errorcode hx_RhWmo_to_Rh<br>
         * @param Err_SatTemp !< errorcode hx_SatTemp<br>
         * @param Err_SatPress !< errorcode hx_SatPress<br>
         * @param Err_SatPressTemp !< errorcode hx_SatPressTemp
         */
        public Hx_Tmp(float OutSvpTtw0, float OutSvpTti0, float OutSvpTdf0, float OutSvpTs0, float OutFTtPtw, float OutFTtPti, float OutFTtdfp, float OutFTtPs, byte iter1, byte iter2, byte iter3, byte iter4, byte iter5, byte iter6, byte Err_hx_esw0, byte Err_hx_esi0, byte Err_hx_esw, byte Err_hx_esi, byte Err_hx_tdp0, byte Err_hx_tfp0, byte Err_hx_tdp, byte Err_hx_tfp, byte Err_hx_MRV, byte Err_hx_Enth, byte Err_hx_SpecHum, byte Err_hx_AbsHum, byte Err_hx_Wbt, byte Err_hx_Wbtw, byte Err_hx_Wbti, byte Err_hx_AirDen, byte Err_hx_MoleFrc, byte Err_hx_Rh, byte Err_MrV_to_Rh, byte Err_Dp_to_Rh, byte Err_Wbt_to_Rh, byte Err_RhWmo_to_Rh, byte Err_Rh_to_RhWmo, byte Err_SatTemp, byte Err_SatPress, byte Err_SatPressTemp) {
            super();
            this.OutSvpTtw0 = OutSvpTtw0;
            this.OutSvpTti0 = OutSvpTti0;
            this.OutSvpTdf0 = OutSvpTdf0;
            this.OutSvpTs0 = OutSvpTs0;
            this.OutFTtPtw = OutFTtPtw;
            this.OutFTtPti = OutFTtPti;
            this.OutFTtdfp = OutFTtdfp;
            this.OutFTtPs = OutFTtPs;
            this.iter1 = iter1;
            this.iter2 = iter2;
            this.iter3 = iter3;
            this.iter4 = iter4;
            this.iter5 = iter5;
            this.iter6 = iter6;
            this.Err_hx_esw0 = Err_hx_esw0;
            this.Err_hx_esi0 = Err_hx_esi0;
            this.Err_hx_esw = Err_hx_esw;
            this.Err_hx_esi = Err_hx_esi;
            this.Err_hx_tdp0 = Err_hx_tdp0;
            this.Err_hx_tfp0 = Err_hx_tfp0;
            this.Err_hx_tdp = Err_hx_tdp;
            this.Err_hx_tfp = Err_hx_tfp;
            this.Err_hx_MRV = Err_hx_MRV;
            this.Err_hx_Enth = Err_hx_Enth;
            this.Err_hx_SpecHum = Err_hx_SpecHum;
            this.Err_hx_AbsHum = Err_hx_AbsHum;
            this.Err_hx_Wbt = Err_hx_Wbt;
            this.Err_hx_Wbtw = Err_hx_Wbtw;
            this.Err_hx_Wbti = Err_hx_Wbti;
            this.Err_hx_AirDen = Err_hx_AirDen;
            this.Err_hx_MoleFrc = Err_hx_MoleFrc;
            this.Err_hx_Rh = Err_hx_Rh;
            this.Err_MrV_to_Rh = Err_MrV_to_Rh;
            this.Err_Dp_to_Rh = Err_Dp_to_Rh;
            this.Err_Wbt_to_Rh = Err_Wbt_to_Rh;
            this.Err_RhWmo_to_Rh = Err_RhWmo_to_Rh;
            this.Err_Rh_to_RhWmo = Err_Rh_to_RhWmo;
            this.Err_SatTemp = Err_SatTemp;
            this.Err_SatPress = Err_SatPress;
            this.Err_SatPressTemp = Err_SatPressTemp;
        }

        public static class ByReference extends Hx_Tmp implements Structure.ByReference {
        }

        public static class ByValue extends Hx_Tmp implements Structure.ByValue {
        }
    }
}